#ifndef UPTIME_H
# define UPTIME_H

#include "linuxos.h"

// ┌──────────────────────────────────────────────────────────────────────────────┐
// │ ubuntu@ubuntu:/$ uptime                                                      │
// │ 14:17:24 up 5 days, 33 min,  1 user,  load average: 0.62, 0.65, 0.56         │
// └──────────────────────────────────────────────────────────────────────────────┘

// ┌──────────────────────────────────────────────────────────────────────────────┐
// │ ubuntu@ubuntu:/$ cat /proc/uptime                                            │
// │ 434014.84 1595139.07                                                         │
// └──────────────────────────────────────────────────────────────────────────────┘

// ┌──────────────────────────────────────────────────────────────────────────────┐
// │ bash-4.4# cat uptime                                                         │
// │ 1357897.16 5371207.61                                                        │
// └──────────────────────────────────────────────────────────────────────────────┘

#define Sec     (1)
#define Min     (60*Sec)
#define Hour    (60*Min)
#define Day     (24*Hour)

typedef struct _Uptime {
    int day;
    int hour;
    int min;
    int sec;
} Uptime;


void uptime_print(Uptime *uptime);

// Usage:
// ┌──────────────────────────────────────────────────────────────────────────────┐
// │ Uptime uptime = {0};                                                         │
// │ parserUptime(buffer, &uptime);                                               │
// └──────────────────────────────────────────────────────────────────────────────┘
static bool parserUptime(char *buf, Uptime *uptime);

bool proc_uptime_to_buffer(Uptime *uptime, char *buffer);
bool initUptime(Uptime *uptime);

#endif